/*
 * lcd_spi_port.h
 * Port driver functions for the lcd spi series.
 * 
 */
#ifndef LCD_SPI_PORT_H
#define LCD_SPI_PORT_H

#include "gspi_port.h"
#include "dev_prv.h"

#define LCD_SPI_PORT_DMA    1

typedef struct
{
    gspi_port_t gspi;
    dev_gpio_t dc;
    dev_gpio_t rst;
    dma_channel_type *dma_base;
}lcd_spi_port_t;

extern void lcd_spi_port_write_cmd(lcd_spi_port_t *t, uint8_t cmd);
extern void lcd_spi_port_write_data8(lcd_spi_port_t *t, uint8_t data8);
extern void lcd_spi_port_write_data16(lcd_spi_port_t *t, uint16_t data16);
extern void lcd_spi_port_reset(lcd_spi_port_t *t, uint16_t ms1, uint16_t ms2);
#if LCD_SPI_PORT_DMA==1
extern void lcd_spi_port_dma_write(lcd_spi_port_t *t, const uint8_t *data, uint16_t len);
#endif
extern void lcd_spi_port_dma_end(lcd_spi_port_t *t);

#endif /* LCD_SPI_PORT_H */
